#pragma once
#include <vector>
#include <string>
#include "Entity.h"
#include "Effect.h"
#include "Weapon.h"
#include "clip.h"

class Weapon;
class Effect;
class Engine;
class MoveHandler;

using namespace std;

class Unit : public Entity
{
private:
	vector<Effect> vectorEffect;
	vector<Weapon> vectorWeapon;

	string name;
	string classe;
	MoveHandler* mh;
	friend class MoveHandler;


	//Milliards de stats
	int baseHitPoint;
	int currentHitPoint;
	int baseArmorPoint;
	int currentArmorPoint;
	int baseAttackPower;
	int currentAttackPower;
	int baseCollideDmg;
	int currentCollideDmg;
	int baseChargePower;
	int currentChargePower;

	int baseJumpHeight;
	int currentJumpHeight;
	int baseSpellPower;
	int currentSpellPower;
	int baseSpellPen;
	int currentSpellPen;
	int baseSpellDef;
	int currentSpellDef;
	int baseDmgPen;
	int currentDmgPen;


public:
    Unit(void);
	Unit(int positionX,int positionY,int height,int width, Engine* e);
	~Unit(void);

	Clip* getWeaponClip(){return weaponClip;}
	void setWeaponClip(Clip* c){weaponClip = c;}
	//Weapon getWeapon();
	void addWeapon();
	void Move();
	//Effect getEffect();
	void addEffect();
	virtual void dragged(int x, int y);
	void update();


	void setMoveHandler(MoveHandler* m){mh=m;}


};

